package com.lailai.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * 版本视图对象
 *
 * @Author lgr
 * @Date 2025/7/21
 * @Wechat a983105834
 * @Email 983105834@qq.com
 * @Copyright <a href="www.lailai.ink">lailai个人空间</a>
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class VersionVO {
    /**
     * 版本ID
     */
    private Long id;

    /**
     * 版本号（唯一）
     */
    private String versionNumber;

    /**
     * 发布名称
     */
    private String releaseName;

    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date releaseDate;

    /**
     * 是否为主版本
     */
    private Boolean isMajorUpdate;

    /**
     * 是否公开
     */
    private Boolean isPublic;

    /**
     * 发布说明（Markdown）
     */
    private String releaseNotes;

    /**
     * 最低系统要求
     */
    private String minRequirements;

    /**
     * 下载地址
     */
    private String downloadUrl;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 版本文件列表
     */
    private List<VersionFileVO> files;

    /**
     * 版本特性列表
     */
    private List<VersionFeatureVO> features;

    /**
     * 依赖项列表
     */
    private List<VersionDependencyVO> dependencies;

    /**
     * 已知问题列表
     */
    private List<KnownIssueVO> knownIssues;
}
